5.2.1 构建训练集和测试集
rattlerocc=cbind.data.frame(rattler$lon,rattler$lat)
fold <- kfold(rattlerocc, k=5)
rattlertest <- rattlerocc[fold == 1, ]
rattlertrain <- rattlerocc[fold != 1, ]
https://jcoliver.github.io/learn-r/011-species-distribution-models.html
testing.group <- 1
group.presence <- kfold(x = obs.data, k = 5)
presence.train <- obs.data[group.presence != testing.group, ]
presence.test <- obs.data[group.presence == testing.group, ]
group.background <- kfold(x = background, k = 5)
background.train <- background[group.background != testing.group, ]
background.test <- background[group.background == testing.group, ]
bc.eval <- evaluate(p = presence.test,
a = background.test,
model = bc.model,
x = bioclim.data)
bc.threshold <- threshold(x = bc.eval, stat = "spec_sens")
set.seed(1)
selected <- sample( 1:nrow(occ_final), nrow(occ_final)*0.5)
occ_train <- occ_final[selected,]
occ_test <- occ_final[-selected,]
plot(occ_train,col="blue")
plot(occ_test,col="red",add=T):
https://jcoliver.github.io/learn-r/011-species-distribution-models.html
background <- randomPoints(mask = mask,
n = nrow(obs.data),
ext = geographic.extent,
extf = 1.25)
library(ENMeval)
cut_block <- ENMeval::get.block(occ=as.data.frame(occ_final@coords),
bg.coords=as.data.frame(bg@coords))
occ_final@data$cut_block <- cut_block$occ.grp
bg@data$cut_block <- cut_block$bg.grp
plot(occ_final)
plot(subset(occ_final,cut_block==1),col=1,add=T)
plot(subset(occ_final,cut_block==2),col=2,add=T)
plot(subset(occ_final,cut_block==3),col=3,add=T)
plot(subset(occ_final,cut_block==4),col=4,add=T)
check1 <- get.checkerboard1(occurrences.ok, environments, bg, aggregation.factor=5)
check1.large <- get.checkerboard1(occurrences.ok, environments, bg, aggregation.factor=30)
check2 <- get.checkerboard2(occurrences.ok, environments, bg, aggregation.factor=c(5,5))
jack <- get.jackknife(occurrences.ok, bg)
random <- get.randomkfold(occurrences.ok, bg, k=5)
library(blockCV)
library(raster)
sp_df <- SpatialPointsDataFrame(data@coords, data = as.data.frame(data@pa), proj4string = crs(predictors))
e_folds <- envBlock(rasterLayer = predictors, speciesData = sp_df, species = "data@pa", k = 4, standardization = "standard", rasterBlock = FALSE, numLimit = 100)
model <- train(method = "Maxnet", data = data, fc = "l", reg = 0.8, folds = e_folds)